// axios 请求工具库封装的模块

// 导入axios
import axios from 'axios'
// 创建 基地址 连接
const request = axios.create({
  baseURL: 'http://pcapi-xiaotuxian-front.itheima.net/',
  // baseURL: 'http://127.0.0.1:3008/',
  timeout: 5000
})

// axios是创建根地址的实例可换添加请求拦截器>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么===// config 形参是配置对象 不要动
    console.log('请求拦截器真的执行了>>>>>>>>>>>>>>>>>>>>>>>>>>>', config)
    //功能: 在发送请求之前,显示loading===//标记--封装好的函数

    // 全局配置请求头,一般去vuex仓库里拿存储的token
    config.headers.Authorization = localStorage.getItem('token')
    return config // 不要删，否则请求无法发送出去
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)
//================================================================
// 添加响应拦截器 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
axios.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    console.log('这是响应拦截器执行了<<<<<<<<<<<<<<<<<<<<<<<<<<<', response)
    //功能:在这里写
    // 隐藏 loading=== //标记--封装好的函数

    return response
  },
  function (error) {
    // 对响应错误做点什么
    // 响应状态码 400 401 404 500等响应失败的时候会执行该函数
    console.log('响应失败')
    // 响应失败也要将loading隐藏掉===//标记--封装好的函数

    alert('网络异常，请稍后重试！！！')
    return Promise.reject(error)
  }
)

export default request
